package Singleton;

/**
 * 单例模式 优化
 *静态类
 * Created by RXJ on 2017/12/12.
 * 注意事项
 * 1.从外部无法访问静态内部类LazyHolder，
 * 只有当调用Singleton.getInstance方法的时候，才能得到单例对象INSTANCE。
 * 2.INSTANCE对象初始化的时机并不是在单例类Singleton被加载的时候，
 * 而是在调用getInstance方法，使得静态内部类LazyHolder被加载的时候。
 * 因此这种实现方式是利用classloader的加载机制来实现懒加载，并保证构建单例的线程安全。
 */
public class Singleton3 {

    private static  class LazyHolder{
        private static final Singleton3 INSTANCE = new Singleton3();
    }
    private  Singleton3(){

    }
    private  static Singleton3 getIntance(){
        return LazyHolder.INSTANCE;
    }
}
